<html>
<body>
报告 <code>Comparator.compare()</code> 和 <code>Comparable.compareTo()</code> 实现中的问题。
<p>将报告以下情况：</p>
<ul>
  <li>
    未使用形参。 很可能这是拼写错误，另一个形参与本身相比较，或者未正确实现方法。
  </li>
  <li>
    显然，对于相同的元素，该方法不会返回 <code>0</code>。 这种比较方法违反了约定，当遇到相同的元素时，可能会产生不可预测的结果。 特别是，某些数据可能会出现异常而导致排序失败。</li>
  <li>
    比较方法从不返回正值或负值。 为了履行约定，如果比较方法返回正值，那么如果以相反的顺序提供实参，它也应该返回负值。
  </li>
  <li>
    比较方法返回 <code>Integer.MIN_VALUE</code>。 虽然约定允许，但它可能容易出错，因为一些调用站点可能会错误地使用一元减号来反转比较方法的返回值。
    <code>Integer.MIN_VALUE</code> 的求反值为 <code>Integer.MIN_VALUE</code>。
  </li>
</ul>
<p><b>示例：</b></p>
<pre><code>
  Comparator&lt;String&gt; lambda =
    (a, b) -&gt; a.length() &gt; b.length()
              ? 0
              : Math.random() &gt; 0.5 ? -1 : 1;
</code></pre>
<!-- tooltip end -->
</body>
</html>
